package com.fivefu.core.skyeye.event.services;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fivefu.core.skyeye.event.entity.DbAiEvent;
import com.baomidou.mybatisplus.extension.service.IService;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 事件表 服务类
 * </p>
 *
 * @author 
 * @since 2022-08-24 11:57:38
 */
public interface DbAiEventService extends IService<DbAiEvent> {

    /**
     * 通过识别事件编号查询事件信息
     * @param mimirEventid 识别事件编号
     * @param sceneCode 场景编号
     * @return
     */
    DbAiEvent queryEventByMimirEventId(Long mimirEventid, String sceneCode);

    /**
     * 编辑事件开始事件
     * @param mimirEventid 识别案卷编号
     * @param sceneCode 场景编号
     * @param cameraCode 探头编号
     * @param startTime 开始时间
     * @return
     */
    Long editEventStartInfo(Long mimirEventid, String sceneCode, String cameraCode, LocalDateTime startTime);

    /**
     * 编辑事件结束事件
     * @param mimirEventid 识别事件编号
     * @param sceneCode 场景编号
     * @param endTime 结束时间
     * @return
     */
    Long editEventEndInfo(Long mimirEventid, String sceneCode, LocalDateTime endTime);

    /**
     * 获取事件列表(分页请传limit和page)
     * @param page        当前页码
     * @param limit       每页显示条数
     * @param cameraid    探头编号
     * @param sceneid     场景编号
     * @return
     */
    Page<Map<String, Object>> getAiEventList(Integer page, Integer limit, String cameraid, String sceneid);

    /**
     * 通过编号查询事件详情
     * @param eventid 事件编号
     * @return
     */
    DbAiEvent queryEventById(Long eventid);

    /**
     * 查看事件详情
     * @param eventid  事件编号
     * @return
     */
    Map<String, Object> getEventInfo(Long eventid);

    /**
     *查询所有事件信息
     */
    List<DbAiEvent> queryEventList();

    /**
     * 根据场景编码查询事件集合
     * @param sceneCode  场景编码
     * @return
     */
    List<DbAiEvent> queryEventListBySceneCode(String sceneCode);
}
